
今天來實際寫幾個函式,首先,先新增一個 util.js 及 util.test.js 檔案後開始撰寫函式吧!
首先在 util.js 撰寫一個函式,來計算正方形體積:
// util.js
export const squareArea = (length, width) => {
  return length * width;
};
接下來透過 util.test.js 來進行測試,首先要先把要測試的函式 import 進來,接下來傳入數值長寬,並斷言該函式能進行長寬運算後,得出需要的結果:
// util.test.js
import { squareArea } from "./util";
test("test squareArea function is work", () => {
  expect(squareArea(2, 2)).toBe(4);
});
這樣第一個練習函式就順利通過了!
一樣在 util.js 撰寫函式並透過 trim 方法來清除字串的前後空格:
// util.js
export const trim = (string) => {
  return string.trim();
};
接下來開始撰寫測試:
別忘記要先引入 trim 函式唷!
// util.test.js
import { squareArea, trim } from "./util";
test("test trim function is work", () => {
  expect(trim(" 0912345678")).toBe("0912345678");
});
透過陣列比對可以讓我們知道陣列的長度及值是否一致:
// util.js
export const arrayEquals = (a, b) => {
  return (
    Array.isArray(a) &&
    Array.isArray(b) &&
    a.length === b.length &&
    a.every((val, index) => val === b[index])
  );
};
可以透過 describe 將要測試的兩種情況包覆起來,並分別用各別 test 方法內進行測試,透過 toBeTruthy 、toBeFalsy 來協助斷言回傳值為 true 或 false :
// util.test.js
import { squareArea, trim, arrayEquals } from "./util";
describe("test arrayEquals function is work", () => {
  test("array is equals", () => {
    const a = [1, 2, 3];
    const b = [1, 2, 3];
    expect(arrayEquals(a, b)).toBeTruthy();
  });
  test("array not equals", () => {
    const a = [1, 2, 3];
    const b = [1, 2, 3, 4];
    expect(arrayEquals(a, b)).toBeFalsy();
  });
});
撰寫函式來協助判斷 string 的長度及是否為 “” ,該函式會回傳 true 或 false :
// util.js
export const emptyString = (string) => {
  return string.length === 0 && string === "";
};
透過 toBeTruthy 、 toBeFalsy 協助判斷為空字串的情況下回傳值為 true ,不為空字串的情況下回傳值為 false :
// util.test.js
import { squareArea, trim, arrayEquals, emptyString } from "./util";
describe("test emptyString function is work", () => {
  test("is empty string", () => {
    const string = "";
    expect(emptyString(string)).toBeTruthy();
  });
  test("not empty string", () => {
    const string = "123";
    expect(emptyString(string)).toBeFalsy();
  });
});
https://masteringjs.io/tutorials/fundamentals/compare-arrays